<?php
namespace Admin\Controller;
use Common\Controller\PublicController;
//管理员控制器
class AdminController extends PublicController
{
	//管理员首页列表		
	public function adminList(){
		$m=M("Role");
		//定义where查询条件
		$where=array();//where初始为空数组
		//判断是否有查询条件
		if(IS_POST){
			$option=I("post.option");
			$post=I("post.where");
			if($option==1){
				$where['username']=array('like',"%{$post}%");
			}elseif($option==2){
				$where['role_name']=array('like',"%{$post}%");
			}
		}
		//分页
		// 查询满足要求的总记录数
		$count=$m
			->where($where)
			->join("RIGHT JOIN think_admin ON think_admin.role_id=think_role.id")
			->count();
		// 实例化分页类 传入总记录数和每页显示的记录数
		$page=new \Think\Page($count,10);
		//配置分页显示规则
		$page->rollPage=1;
		$page->lastSuffix = false;
		$page->setConfig('header','%TOTAL_ROW%条数据 %NOW_PAGE%/%TOTAL_PAGE% 页&nbsp;&nbsp;');
        $page->setConfig('first', '首页');
		$page->setConfig('last', '尾页');
		$page->setConfig('prev','上一页');
		$page->setConfig('next','下一页');
		$page->setConfig('theme',"%HEADER% %FIRST% %UP_PAGE% %DOWN_PAGE% %END%");
		/*//分页跳转的时候保证查询条件
		foreach($where as $key=>$val) {
		    $page->parameter.="$key=".urlencode($val).'&';
		}*/
		$show=$page->show();//分页显示输出
		//进行分页数据查询 注意limit方法的参数要使用Page类的属性
		$adm_arr=$m
			->where($where)
			->join("RIGHT JOIN think_admin ON think_admin.role_id=think_role.id")
			->limit($page->firstRow,$page->listRows)
			->select();
		foreach($adm_arr as $k=>$v){
			$adm_arr[$k]['lastlogin']=date("Y-m-d H:i:s",$v['lastlogin']);
		}
		$this->assign('option',$option);
		$this->assign('post',$post);
		$this->assign('role_name',$role_name);
		$this->assign('adm_arr',$adm_arr);
		$this->assign('page',$show);
		$this->display();
	}
	//添加管理员页面
	public function adminAdd(){
		if(IS_POST){
			$admin=M("Admin");
			$data['username']=I('post.username');
			$data['password']=I('post.password');
			$data['role_id']=I('post.role_id');
			if(!$data['role_id']){
				$data['status']=0;
				$data['msg']="请选择角色";
				$this->ajaxReturn($data);
			}
			$data['addtime']=null;//timestamp字段设置为not null，则自动添加当前时间
			$res=$admin->add($data);
			if($res){
				// $this->success("添加成功",U('Admin/adminList'));	
				$data['status']=1;
				$data['msg']="添加成功";
				$this->ajaxReturn($data);	
			}else{
				// $this->error("添加失败");
				$data['status']=0;
				$data['msg']="添加失败";
				$this->ajaxReturn($data);	
			}
		}else{
			/**
			 * 添加管理员页面实现步骤：
			 * 1.查询think_role表，获取角色信息
			 * 2.将角色信息数组传入add模板
			 * 3.在add模板中遍历role_name，将角色名做成选择下拉框
			 */
			$role=M('Role');
			$role_arr=$role->select();
			$this->assign('role_arr',$role_arr);
			$this->display();
		}
	}
	//修改页面
	public function AdminEdit(){
		/**
		 * 修改管理员页面实现步骤：
		 * 1.get方式获取当前操作的管理员id
		 * 2.根据id查询think_admin表，获取管理员信息，传入模板（用作表单默认值）
		 * 3.查询think_role表，获取角色信息，传入模板（作用同add页面）
		 */
		$id=I("get.id");		
		$adm_arr=M("Admin")->find($id);	
		$role_arr=M('Role')->select();
		
		$this->assign('id',$id);
		$this->assign('adm_arr',$adm_arr);
		$this->assign('role_arr',$role_arr);
		$this->display();
	}
	//修改操作方法
	public function AdminEditAction(){
		//修改操作页面
		$admin=M("Admin");
		$data['id']=I('post.id');
		$data['username']=I('post.username');
		$data['password']=I('post.password');
		$data['role_id']=I('post.role_id');
		$data['state']=I('post.state');
		$res=$admin->save($data);
		if($res){
			// $this->success("修改成功",U('Admin/adminList'));	
			$da['status']=1;
			$da['msg']="修改成功";
		}else{
			// $this->error("修改失败");
			$da['status']=0;
			$da['msg']="修改失败";
		}
			$this->ajaxReturn($da);			
	}
	//删除管理员(ajax)
	public function adminDel(){
		//获取id
		$id=I("post.id");
		$admin=M("Admin");
		if($id==1){
			// $this->error('无法删除超级管理员');
			$data['status']=0;
			$data['msg']="无法删除超级管理员";
			$this->ajaxReturn($data);
		}else{
			$res=$admin->delete($id);
			if($res){
				// $this->success("删除成功");
				$data['status']=1;
				$data['msg']="删除成功";
				$this->ajaxReturn($data);
			}else{
				// $this->error("删除失败");
				$data['status']=0;
				$data['msg']="删除失败";
				$this->ajaxReturn($data);
			}		
		}
	}



}
